iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
自我挑戰組

轉職未滿一年的點點滴滴系列 第 21

[Day 21] - 『轉職工作的Lessons learned』 - GraphQL (Hasura) - Event Trigger

  • 分享至 

  • xImage
  •  

今天要繼續講一下GraphQL(Hasura)裡面的一個小功能 - Event Trigger。

會特別介紹這個小工具的原因是因為,我在公司的業務曾經有遇到過DB資料被誤刪/更新等等的更動,但由於Hasura的向資料庫的請求方式都是用POST,再去搭配使用的graphql的query和mutation語法,導致我在偵錯,又或者換句話說,重現Issue時變得很難,因為log裏面看不出來到底實際上被操作了哪些動作,於是Event Trigger就派上用場了。

實際上Event trigger的本意是,當我們執行了某個動作後,會再去驅使下一個行為的產生,可以追蹤每一個執行的動作只是他的附加的功能。

以下是官網針對Event Trigger的大致介紹,我們可以自行選擇要對下述所寫的幾個動作(Insert/Update/Delete...)做追蹤。

https://ithelp.ithome.com.tw/upload/images/20211005/20140071J0LnFZyP4v.png

可以在後台這裡加入

https://ithelp.ithome.com.tw/upload/images/20211005/20140071XaA2yU6NlS.png

加上這個功能後,即可以時間去追蹤old and new的差異性,並可以知道當下對資料庫進行什麼操作,Insert, Update, Delete, etc.

https://ithelp.ithome.com.tw/upload/images/20211005/20140071Jsftpn2vfG.png

後記:
後來針對這個Issue,我們在資料庫裏面的這個Table加入了軟刪除,以防止未來資料又因其原因而無故刪除,雖然有備份可以還原,但最快最直接的方式就是可以去DB看是否又被使用者人為操作誤刪了。


上一篇
[Day 20] - 『轉職工作的Lessons learned』 - GraphQL (Hasura) - 身份級別權限設定
下一篇
[Day 22] - 『轉職工作的Lessons learned』 - GraphQL (Hasura) - Apollo Client
系列文
轉職未滿一年的點點滴滴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言